package cn.ytr.crm.mapper;

import cn.ytr.crm.domain.Permission;
import cn.ytr.crm.query.QueryObject;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface PermissionMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Permission record);

    Permission selectByPrimaryKey(Long id);

    List<Permission> selectAll();

    int updateByPrimaryKey(Permission record);

    //高级查询
    int selectForCount(QueryObject qo);
    List<Permission> selectForList(QueryObject qo);

    //查询所有的表达式
    List<String> selectAllExpression();

    //通过角色 id 查询所有的权限
    List<Permission> selectListByRoleId(@Param("roleId")Long roleId);

    //维护 角色权限中间表，删除某个权限也应该把对应的记录删掉
    void deleteRelation(@Param("permissionId")Long permissionId);

    //通过员工 id 获取所有权限表达式
    List<String> selectByEmpId(Long id);
}